home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Night Owl 9
/
Night Owl CD-ROM (NOPV9) (Night Owl Publisher) (1993).ISO
/
009a
/
snpd0493.zip
/
GETSTRNG.C
< prev
next >
Wrap
C/C++ Source or Header
|
1993-04-05
|
1KB
|
59 lines
.I 3 1
**
.I 4 1
** Bob Stout 2/18/93, modified to use a static buffer
.I 12 52
{
int newchar;
size_t i;
static size_t bufsize = 0;
static char *buffer = NULL;
/* Get chars from keyboard and put them in buffer. */
for (i = 0; ((newchar = getchar()) != EOF) && (newchar != '\n')
&& (newchar != '\r'); ++i )
{
if (i + 1 > bufsize)
{
/* If buffer is full, resize it. */
if (NULL == (buffer = realloc(buffer, bufsize + BLOCKSIZ)))
{
puts("\agetstrng() - Insufficient memory");
/* Add terminator to partial string */
if (buffer)
buffer[i] = '\0';
return buffer;
}
bufsize += BLOCKSIZ;
}
buffer[i] = (char) newchar;
}
buffer[i] = '\0'; /* Tack on a null-terminator. */
return buffer;
}
#ifdef TEST
#include <string.h>
int main(void)
{
char *string;
puts("Enter strings of any length or <Enter> to quit\n");
do
{
string = getstring();
printf("You entered:\n\"%s\"\n\n", string);
} while (strlen(string));
free(string);
return EXIT_SUCCESS;
}
#endif /* TEST */
.D 13 34